#*****************************************************************************
# *                                                                           *
# * Copyright 2016-2021 Intel Corporation.                                    *
# *                                                                           *
# *****************************************************************************
#
# This code is covered by the Community Source License (CPL), version
# 1.0 as published by IBM and reproduced in the file "license.txt" in the
# "license" subdirectory. Redistribution in source and binary form, with
# or without modification, is permitted ONLY within the regulations
# contained in above mentioned license.
#
# Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY
# within the regulations of the "License for Use of "Intel(R) MPI
# Benchmarks" Name and Trademark" as reproduced in the file
# "use-of-trademark-license.txt" in the "license" subdirectory.
#
# THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR
# CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
# LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
# solely responsible for determining the appropriateness of using and
# distributing the Program and assumes all risks associated with its
# exercise of rights under this Agreement, including but not limited to
# the risks and costs of program errors, compliance with applicable
# laws, damage to or loss of data, programs or equipment, and
# unavailability or interruption of operations.
#
# EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
# ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
# WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
# DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
# HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
#
# EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF
# YOUR JURISDICTION. It is licensee's responsibility to comply with any
# export regulations applicable in licensee's jurisdiction. Under
# CURRENT U.S. export regulations this software is eligible for export
# from the U.S. and can be downloaded by or otherwise exported or
# reexported worldwide EXCEPT to U.S. embargoed destinations which
# include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan,
# Afghanistan and any other country to which the U.S. has embargoed
# goods and services.
#
#  ***************************************************************************

all: IMB-MPI1 IMB-NBC IMB-RMA IMB-EXT IMB-IO IMB-MT IMB-P2P

IMB-MPI1:
	make -C src_cpp -f Makefile TARGET=MPI1
	@cp src_cpp/IMB-MPI1 .

IMB-NBC:
	make -C src_cpp -f Makefile TARGET=NBC
	@cp src_cpp/IMB-NBC .

IMB-EXT:
	make -C src_cpp -f Makefile TARGET=EXT
	@cp src_cpp/IMB-EXT .

IMB-RMA:
	make -C src_cpp -f Makefile TARGET=RMA
	@cp src_cpp/IMB-RMA .

IMB-IO:
	make -C src_cpp -f Makefile TARGET=IO
	@cp src_cpp/IMB-IO .

IMB-MT: | IMB-MPI1
	make -C src_cpp -f Makefile TARGET=MT
	@cp src_cpp/IMB-MT .

IMB-P2P:
	make -C src_c/P2P -f Makefile TARGET=P2P
	@cp src_c/P2P/IMB-P2P .

IMB-MPI1-GPU:
	make -C src_cpp -f Makefile TARGET=MPI1 GPU_ENABLE=1
	@cp src_cpp/IMB-MPI1 ./IMB-MPI1-GPU


clean:
	make -C src_cpp -f Makefile TARGET=MPI1 clean
	make -C src_cpp -f Makefile TARGET=NBC clean
	make -C src_cpp -f Makefile TARGET=RMA clean
	make -C src_cpp -f Makefile TARGET=EXT clean
	make -C src_cpp -f Makefile TARGET=IO clean
	make -C src_cpp -f Makefile TARGET=MT clean
	make -C src_c/P2P -f Makefile TARGET=P2P clean
	make -C src_cpp -f Makefile TARGET=MPI1 clean GPU_ENABLE=1
	rm -f IMB-MPI1 IMB-NBC IMB-RMA IMB-EXT IMB-IO IMB-MT IMB-P2P IMB-MPI1-GPU
